home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2008 September
/
PCWorld_2008-09_cd.bin
/
v cisle
/
sadanastroju
/
interclue-1.5.6-fx.xpi
/
chrome
/
interclue
/
content
/
options.js
< prev
next >
Wrap
Text File
|
2008-06-03
|
3KB
|
116 lines
/**
* initalize this window
*/
function init(){
initPresets();
sizeToContent();
moveToAlertPosition();
}
/**
* open the advanced options dialog
*/
function openAdvancedOptionsDialog(page){
var Klib = interclue.getKlib();
if (Klib){
Klib.Pref.openAdvancedPrefsWindow(page);
window.close();
}
}
/**
* if user hits the ok/save button
*/
function onAccept(){
//we need to alter the prefs accordingly
if (savePreferenceSets()){
//all good
return true;
}
else {
alert("Failed to save prefs!");
return false;
}
}
/**
* Update individual options etracted from an optiongroup
*/
function savePreferenceSets(){
var Klib = interclue.getKlib();
if (Klib){
var radios = document.getElementsByTagName("radio");
for (var i=0; i<radios.length; i++){
var radio = radios[i];
if (radio.selected && radio.getAttribute("preferenceset")){
//save the prefs for this radio button
var pairs = Klib.extractKeyValuePairs(radio.getAttribute("preferenceset"), ",", true);
for(var prefId in pairs){
Klib.Pref.set(prefId, pairs[prefId]);
}
}
}
return true;
}
else {
return false;
}
}
/**
* select the correct radio buttons depending on which options are set
*/
function initPresets(){
var Klib = interclue.getKlib();
if (Klib){
var groups = ["preset-speed", "preset-performance", "preset-bandwidth"];
for (var i=0; i<groups.length; i++){
var group = groups[i];
var eles = Klib.getEles("radio.interclue-"+ group, document);
var groupChecked = false;
for (var j=0; j<eles.length; j++){
var ele = eles[j];
var set = ele.getAttribute("preferenceset");
if (set){
//assume
var eleChecked = true;
//split into key/value pairs
var pairs = Klib.extractKeyValuePairs(set, ",", true);
//and check if they match the currently set pref
for (var prefid in pairs){
if (Klib.Pref.get(prefid) != pairs[prefid]){
eleChecked = false;
break;
}
}
//and select this radio button
ele.setAttribute("selected", eleChecked ? "true" : "");
if (eleChecked){
groupChecked = true;
}
}
else {
//select the "use advanced options" radio if no others from this group are selected.
ele.setAttribute("selected", groupChecked ? "" : "true");
}
}
}
}
else {
alert("Klib not set");
}
}